package com.shiguiwu.springmybatis.leetcode;

/**
 * @description: 二分算法
 * @author: stone
 * @date: Created by 2022/8/9 10:23
 * @version: 1.0.0
 * @pakeage: com.shiguiwu.springmybatis.leetcode
 */
public class BinaryAlgorithm {


    /**
     * 给你一个整数数组 nums 。你可以选定任意的 正数 startValue 作为初始值。
     *
     * 你需要从左到右遍历 nums 数组，并将 startValue 依次累加上 nums 数组中的值。
     *
     * 请你在确保累加和始终大于等于 1 的前提下，选出一个最小的 正数 作为 startValue 。
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode.cn/problems/minimum-value-to-get-positive-step-by-step-sum
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     * @param nums
     * @return
     * 最小前缀和
     */
    public int minStartValue(int[] nums) {
        int min = 0, sum = 0;
        for(int n : nums){
            sum += n;
            min = min >= sum ? sum : min;
        }
        return -min + 1;

    }




}
